//
//    Adaptación del tema DevOOPS v1.0 Bootstrap
//		Nanu. Junio 2014
//

//////////////////////////////////////////////////////
//////////////////////////////////////////////////////
//
//      MAIN DOCUMENT READY SCRIPT OF DEVOOPS THEME
//
//      In this script main logic of theme
//
//////////////////////////////////////////////////////
//////////////////////////////////////////////////////
var boxDatos = '#box-tabla-datos';
var boxFiltros = '#box-tabla-datos-buscar';

$(document).ready(function () {
	var MessagesMenuWidth = 10;
	$('.show-sidebar').on('click', function () {
		$('div#main').toggleClass('sidebar-show');
		setTimeout(MessagesMenuWidth, 250);
	});

	// Oculto la barra de carga
	$('.preloader').hide();

	// Seteo el contenido de la página en el div en el que debe estar para ser visible.
	$('#ajax-content').html($('#contenido_pagina'));

	$('.main-menu').on('click', 'a', function (e) {
		var parents = $(this).parents('li');
		var li = $(this).closest('li.dropdown');
		var another_items = $('.main-menu li').not(parents);
		another_items.find('a').removeClass('active');
		another_items.find('a').removeClass('active-parent');
		if ($(this).hasClass('dropdown-toggle') || $(this).closest('li').find('ul').length == 0) {
			$(this).addClass('active-parent');
			var current = $(this).next();
			if (current.is(':visible')) {
				li.find("ul.dropdown-menu").slideUp('fast');
				li.find("ul.dropdown-menu a").removeClass('active')
			}
			else {
				another_items.find("ul.dropdown-menu").slideUp('fast');
				current.slideDown('fast');
			}
		}
		else {
			if (li.find('a.dropdown-toggle').hasClass('active-parent')) {
				var pre = $(this).closest('ul.dropdown-menu');
				pre.find("li.dropdown").not($(this).closest('li')).find('ul.dropdown-menu').slideUp('fast');
			}
		}
		if ($(this).hasClass('active') == false) {
			$(this).parents("ul.dropdown-menu").find('a').removeClass('active');
			$(this).addClass('active')
		}
		if ($(this).hasClass('ajax-link')) {
			e.preventDefault();
			if ($(this).hasClass('add-full')) {
				$('#content').addClass('full-content');
			}
			else {
				$('#content').removeClass('full-content');
			}
			var url = $(this).attr('href');
			LoadAjaxContent(url);
			ocultarBoxFiltros();
		}
		if ($(this).attr('href') == '#') {
			e.preventDefault();
		}
	});
	var height = window.innerHeight - 49;
	$('#main').css('min-height', height)
		.on('click', '.expand-link', function (e) {
			var body = $('body');
			e.preventDefault();
			var box = $(this).closest('div.box');
			var button = $(this).find('i');
			button.toggleClass('fa-expand').toggleClass('fa-compress');
			box.toggleClass('expanded');
			body.toggleClass('body-expanded');
			var timeout = 0;
			if (body.hasClass('body-expanded')) {
				timeout = 100;
			}
			setTimeout(function () {
				box.toggleClass('expanded-padding');
			}, timeout);
			setTimeout(function () {
				box.resize();
				box.find('[id^=map-]').resize();
			}, timeout + 50);
		})
		.on('click', '.collapse-link', function (e) {
			e.preventDefault();
			var box = $(this).closest('div.box');
			var button = $(this).find('i');
			var content = box.find('div.box-content');
			content.slideToggle('fast');
			button.toggleClass('fa-chevron-up').toggleClass('fa-chevron-down');
			setTimeout(function () {
				box.resize();
				box.find('[id^=map-]').resize();
			}, 50);

			$("input:visible:enabled:first").focus();
		})
		.on('click', '.close-link', function (e) {
			e.preventDefault();
			var content = $(this).closest('div.box');
			content.remove();
		});
	
	$('#top-panel').on('click','a', function(e){
		if ($(this).hasClass('ajax-link')) {
			e.preventDefault();
			if ($(this).hasClass('add-full')) {
				$('#content').addClass('full-content');
			}
			else {
				$('#content').removeClass('full-content');
			}
			var url = $(this).attr('href');
			LoadAjaxContent(url);
		}
	});

	ocultarBoxFiltros();
});

function ocultarBoxFiltros()
{
	var content = $('#filtros-box-content');
	var button = $('#filtros-i');
	content.hide();
	button.toggleClass('fa-chevron-up').toggleClass('fa-chevron-down');
}


function mostrar_msjAyuda(msjAyuda, idAyuda, tamanio)
{
	var div_msj = $('#box_ayuda' + idAyuda);
	var icono_ayuda = $("#icono_ayuda" + idAyuda);

	div_msj.css({"left": icono_ayuda.position().left,
				 "top": icono_ayuda.css("top"),
				 "width" : tamanio
				});
	div_msj.empty();
	div_msj.append(msjAyuda);
	div_msj.removeClass('box_ayuda_oculto');
	div_msj.toggleClass('box_ayuda_visible');
}

function ocultar_msjAyuda(idAyuda)
{
	var div_msj = $('#box_ayuda' + idAyuda);
	div_msj.removeClass('box_ayuda_visible');
	div_msj.toggleClass('box_ayuda_oculto');
}

/*-------------------------------------------
	Scripts principales utilizados por el tema. Adaptados.
---------------------------------------------*/
//
//  Function for load content from url and put in $('.ajax-content') block
//
function LoadAjaxContent(url){
	if(url != '') {
		$('.preloader').show();
		$.ajax({
			mimeType: 'text/html; charset=utf-8', // ! Need set mimeType only when run from local file
			url: url,
			data: {},
			type: 'POST',
			success: function(data) {
				$('#ajax-content').html(data);
				$('.preloader').hide();
			},
			error: function (jqXHR, textStatus, errorThrown) {
				bootbox.alert(url + errorThrown);
			},
			dataType: "html",
			async: false
		});
	}
}

function guardarForm(idForm, controller){
	var form = $('#'+idForm);
	var url_validacion = url_sitio + controller + '/validarForm'

	// Debo validar si los datos ingresados son correctos
	$.ajax({
		mimeType: 'text/html; charset=utf-8',
		url: url_validacion,
		data: $(form).serialize(),
		type: $(form).attr('method'),
		success: function(data) {
			if($.trim(data) == '') {
				// Validación correcta
				var datos = $(form).serialize();		
				enviarForm(form, true, datos, boxDatos);
			}
			else {
				var elemError = $('#error_msj');
				elemError.addClass("alert alert-danger");
				$('#error_msj').html(data);
			}
		},
		error: function (jqXHR, textStatus, errorThrown) {
			bootbox.alert(url_validacion + ': ' + errorThrown);
		},
		dataType: "html",
		async: false
	});
}

function cargarArchivo_adjunto(idForm, controller){
	var form = $('#'+idForm);
	var url_validacion = url_sitio + controller + '/validarForm'
	var elemError = $('#error_msj');
	elemError.removeClass("alert alert-danger");
	elemError.empty();

	// Debo validar si los datos ingresados son correctos
	$.ajax({
		mimeType: 'text/html; charset=utf-8',
		url: url_validacion,
		data: $(form).serialize(),
		type: $(form).attr('method'),
		success: function(data) {
			if($.trim(data) == '') {
				// Validación correcta
				$.ajaxFileUpload({
		            url:$(form).attr('action'),
		            secureuri:false,
		            fileElementId:'userfile',
		            dataType: 'json',
		            data: {'txt_titulo' : $('#txt_titulo').val(),
						'txt_contenido' : $('#txt_contenido').val(),
						'chk_en_slider' : $("#chk_en_slider").is(':checked') ? 1 : 0,
						'chk_destacada' : $('#chk_destacada').is(':checked') ? 1 : 0},
		            success : function (data)
		            {
		            	var nombreBox = '#box-content-adjuntos';
		                var div_datos = $(nombreBox);
						div_datos.empty();
						if($(data).find(nombreBox).length)
							div_datos.html($(data).find(nombreBox).contents());
						else
							div_datos.append(data);
					}
		        });
			}
			else {
				var elemError = $('#error_msj');
				elemError.addClass("alert alert-danger");
				$('#error_msj').html(data);
			}
		},
		error: function (jqXHR, textStatus, errorThrown) {
			bootbox.alert(url_validacion + ': ' + errorThrown);
		},
		dataType: "html",
		async: false
	});
}

function cargarArchivo_imagen(idForm, controller){
	var form = $('#'+idForm);
	var url_validacion = url_sitio + controller + '/validarForm'
	var elemError = $('#error_msj');
	elemError.removeClass("alert alert-danger");
	elemError.empty();

	// Debo validar si los datos ingresados son correctos
	$.ajax({
		mimeType: 'text/html; charset=utf-8',
		url: url_validacion,
		data: $(form).serialize(),
		type: $(form).attr('method'),
		success: function(data) {
			if($.trim(data) == '') {
				// Validación correcta
				$.ajaxFileUpload({
		            url:$(form).attr('action'),
		            secureuri:false,
		            fileElementId:'userfile',
		            dataType: 'json',
		            data: {'txt_titulo' : $('#txt_titulo').val(),
						'txt_contenido' : $('#txt_contenido').val(),
						'chk_en_slider' : $("#chk_en_slider").is(':checked') ? 1 : 0,
						'chk_destacada' : $('#chk_destacada').is(':checked') ? 1 : 0},
		            success : function (data)
		            {
						var div_datos = $(nombreBox);
						div_datos.empty();

						if($(data).find(nombreBox).length) div_datos.html($(data).find(nombreBox).contents());
						else div_datos.append(data);
						
						cerrarModal();
					}
		        });
			}
			else {
				var elemError = $('#error_msj');
				elemError.addClass("alert alert-danger");
				$('#error_msj').html(data);
			}
		},
		error: function (jqXHR, textStatus, errorThrown) {
			bootbox.alert(url_validacion + ': ' + errorThrown);
		},
		dataType: "html",
		async: false
	});
}

function cargarFotoPerfil(idForm, controller){
	var fotoElegida = $('#userfile');
	if (fotoElegida.val().trim() == '') {
		bootbox.alert("Debe seleccionar un archivo antes de continuar");
	}
	else {
		var form = $('#'+idForm);

		$.ajaxFileUpload({
            url:$(form).attr('action'), 
            secureuri:false,
            fileElementId:'userfile',
            dataType: 'json',
            data: {'txt_id' : $('#txt_id').val()},
            success : function (data)
            {
            	if (data.indexOf('Error') == 0) bootbox.alert(data);
            	else {
            		var nombre_foto = fotoElegida[0].files[0].name;
            		$("#img_avatar").attr("src", url_base + 'img/' + nombre_foto);
            		$("#img_avatar_grande").attr("src", url_base + 'img/' + nombre_foto);
            		bootbox.alert('La foto de perfil fue cambiada correctamente.');
            	}
            	cerrarModal();
			}
        });
	}
}

function cargarImagen(idForm, controller){
	var imgElegida = $('#userfile');
	if (imgElegida.val().trim() == '') {
		bootbox.alert("Debe seleccionar un archivo antes de continuar");
	}
	else {
		var form = $('#'+idForm);

		$.ajaxFileUpload({
            url:$(form).attr('action'), 
            secureuri:false,
            fileElementId:'userfile',
            dataType: 'json',
            data: {'txt_id' : $('#txt_id').val()},
            success : function (data)
            {
            	if (data.indexOf('Error') == 0) bootbox.alert(data);
            	else bootbox.alert('La imagen fue cargada correctamente. Recargue la página para ver los cambios.');
            	cerrarModal();
			}
        });
	}
}

function cargarArchivo(path, div_mostrar_resultado, datos_enviar){
	var archivoElegido = $('#userfile');
	var div_resultado = '';
	if (archivoElegido.val().trim() == '') {
		bootbox.alert("Debe seleccionar un archivo antes de continuar");
	}
	else {
		// Si hubiera algún lugar, muestro una imagen de cargando...
		if(div_mostrar_resultado != '') { 
			div_resultado = $('#'+div_mostrar_resultado);
			div_resultado.empty();
			div_resultado.append("<center><img src='" + url_base + "img/loading.gif'></center>");
		}
		var path_completo = url_sitio + path;
		$.ajaxFileUpload({
            url:path_completo, 
            secureuri:false,
            fileElementId:'userfile',
            dataType: 'json',
            data: datos_enviar,
            success : function (data)
            {
            	// Si se definió un sector donde mostrar la imagen, la quito
            	if (data.indexOf('Error') == 0) { 
            		bootbox.alert(data);
            		if(div_mostrar_resultado != '') div_resultado.empty();
            	}
            	else {
	            	if(div_mostrar_resultado != '') {
					    div_resultado.empty();
					    div_resultado.append(data);
					}
				}
			},
			error: function (jqXHR, textStatus, errorThrown) {
				bootbox.alert(path_completo + ': ' + errorThrown);
			},
        });
	}

	return '';
}

function enviarForm(form, es_guardar, datos, nombreBox){
	var accion = $(form).attr('action');
	var metodo = $(form).attr('method');
	ejecutarAjax(accion, datos, metodo, es_guardar, nombreBox);
}

function ejecutarAjax(accion, datos, metodo, ocultarModal, nombreBox)
{
	$.ajax({
		mimeType: 'text/html; charset=utf-8',
		url: accion,
		data: datos,
		type: metodo,
		success: function(data) {
			var div_datos = $(nombreBox);
			div_datos.empty();

			if(!div_datos.is('input:text')) {
				if($(data).find(nombreBox).length)
					div_datos.html($(data).find(nombreBox).contents());
				else
					div_datos.append(data);
			}
			else div_datos.val(data);

			if(ocultarModal) cerrarModal();
		},
		error: function (jqXHR, textStatus, errorThrown) {
			bootbox.alert(accion + ': ' + errorThrown);
		},
		dataType: "html",
		async: false
	});
}

function filtrarDatos(idForm, es_busqueda, pagina){
	var form = $('#'+idForm);
	$("#hidden_page").val(pagina);
	var datos = $(form).serialize();
	enviarForm(form, false, datos, (es_busqueda ? boxFiltros : boxDatos));
}

function quitarFiltros(idForm, es_busqueda){
	var form = $('#'+idForm);
	$(form)[0].reset();
	$("#hidden_page").val(1);
	var datos = {};
	enviarForm(form, false, datos, (es_busqueda ? boxFiltros : boxDatos));
}

function generarExcel(idForm, controller){
	var form = $('#'+idForm);
	var accion_original = $(form).attr('action');
	var accion_nueva = url_sitio + controller + '/generar_excel';

	form.get(0).setAttribute('action', accion_nueva);
	form.submit();
	form.get(0).setAttribute('action', accion_original);
}

// Método utilizado para autocompletar campos en los formularios, facilitando el ingreso de datos al usuario
function autocompletado(evt, elem, controller, campoNombre){
	var e = evt || event;
    var teclaPresionada = e.keyCode || e.which;
	if(teclaPresionada != 9 && teclaPresionada != 16) // Valido que no sea el TAB
	{
		var valorBuscado = $(elem).val().trim();
		if(valorBuscado != '' && valorBuscado.length > 2) {
			var data_post = {f_txt_nombre:valorBuscado};
			var	url_datos = url_sitio + controller + '/busqueda_rapida';

			$.ajax({
	            type: "POST",
	            url: url_datos,
	            data: data_post,
	            dataType: "json",
	            success: function(data) {
	            	var opciones = '';
	                $.each(data, function(id,nombre){
			            opciones += "<div onclick=\"cargarSeleccionAutocompletado(this, '"+campoNombre+"')\" class='sugerencia_auto' id_elem='"+id+"' nombre_elem='"+nombre+"'>"+nombre+"</div>";
			        });

	                //Escribimos las sugerencias que nos manda la consulta
	                $('#sugerencias_'+campoNombre).fadeIn(1000).html(opciones);
	            }
	        });
		}
		else {
			$('#'+campoNombre+'_id').val('');
			$('#sugerencias_'+campoNombre).empty();
		}
	}
}

function cargarSeleccionBusqueda(controller, idElegido)
{
	var accion = url_sitio + controller + '/toString/' + idElegido;
	var nombreBox = '#box_' + controller;
	ejecutarAjax(accion, {}, 'POST', false, nombreBox);

	$('.bootbox-close-button').click();
}

function cargarSeleccionAutocompletado(elem, campoNombre)
{
	var idElegido = $(elem).attr('id_elem');
	var nombreElegido = $(elem).attr('nombre_elem');
	var tabindexElem = $(elem).attr('index');
    
    //Editamos el valor del input con data de la sugerencia pulsada
    $('#'+campoNombre).val(nombreElegido);
    $('#'+campoNombre+'_id').val(idElegido);
    
    //Hacemos desaparecer el resto de sugerencias
    $('#sugerencias_'+campoNombre).fadeOut(10);
}

function cargarSegunFiltros(controller)	
{
	var codigo = ($('#txt_'+controller+'_cod').length > 0 ? $('#txt_'+controller+'_cod').val() : '').trim();
	var nombre = $('#txt_'+controller).val().trim();
	if(codigo != '' || nombre != '') {
		if(codigo == '') codigo = 0;
		if(nombre == '') nombre = '-';

		var accion = url_sitio + controller + '/cargarSegunFiltro/' + nombre + '/' +  codigo;
		var nombreBox = '#box_' + controller;
		ejecutarAjax(accion, {}, 'POST', false, nombreBox);
	}
	else bootbox.alert('Debe ingresar qué desea cargar antes de continuar');
}

/* Abre un formulario modal de búsqueda de la entidad recibida como parámetro. Los filtros deben estar		
	definidos en la página solicitante. */		
function busqueda(controller){
	var	url_datos = url_sitio + controller + '/busqueda';
	$.ajax({
		mimeType: 'text/html; charset=utf-8',		
		url: url_datos,		
		data: {},
		type: 'POST',	
		success: function(data) {		
			bootbox.dialog({		
			  title: "Buscar elemento...",		
			  message: data
			});
		},
		error: function (jqXHR, textStatus, errorThrown) {		
			bootbox.alert(jqXHR + ': ' + errorThrown);		
		},
		dataType: "html",		
		async: false		
	});
}

// Método utilizado en el cambio de estado del usuario.
function ejecutar_accion_datos(url_destino) {
	if(url_destino != '') {
	  	url_destino = url_sitio + url_destino
		$.ajax({
			mimeType: 'text/html; charset=utf-8',
			url: url_destino,
			data: {}, // ! Se necesita para identificar en el controlador desde dónde proviene la llamada
			type: 'POST',
			success: function(data) {
				var div_datos = $('#box-tabla-datos');
				div_datos.empty();
				div_datos.html($(data).find('#box-tabla-datos').contents());
			},
			error: function (jqXHR, textStatus, errorThrown) {
				bootbox.alert(url_destino + ": " + errorThrown);
			},
			dataType: "html",
			async: false
		});
	}
}

//
//  Function maked all .box selector is draggable, to disable for concrete element add class .no-drop
//
function WinMove(){
	$( "div.box").not('.no-drop')
		.draggable({
			revert: true,
			zIndex: 2000,
			cursor: "crosshair",
			handle: '.box-name',
			opacity: 0.8
		})
		.droppable({
			tolerance: 'pointer',
			drop: function( event, ui ) {
				var draggable = ui.draggable;
				var droppable = $(this);
				var dragPos = draggable.position();
				var dropPos = droppable.position();
				draggable.swap(droppable);
				setTimeout(function() {
					var dropmap = droppable.find('[id^=map-]');
					var dragmap = draggable.find('[id^=map-]');
					if (dragmap.length > 0 || dropmap.length > 0){
						dragmap.resize();
						dropmap.resize();
					}
					else {
						draggable.resize();
						droppable.resize();
					}
				}, 50);
				setTimeout(function() {
					draggable.find('[id^=map-]').resize();
					droppable.find('[id^=map-]').resize();
				}, 250);
			}
		});
}
//
// Swap 2 elements on page. Used by WinMove function
//
jQuery.fn.swap = function(b){
	b = jQuery(b)[0];
	var a = this[0];
	var t = a.parentNode.insertBefore(document.createTextNode(''), a);
	b.parentNode.insertBefore(a, b);
	t.parentNode.insertBefore(b, t);
	t.parentNode.removeChild(t);
	return this;
};

//
//  Beauty tables plugin (navigation in tables with inputs in cell)
//  Created by DevOOPS.
//
(function( $ ){
	$.fn.beautyTables = function() {
		var table = this;
		var string_fill = false;
		this.on('keydown', function(event) {
		var target = event.target;
		var tr = $(target).closest("tr");
		var col = $(target).closest("td");
		if (target.tagName.toUpperCase() == 'INPUT'){
			if (event.shiftKey === true){
				switch(event.keyCode) {
					case 37: // left arrow
						col.prev().children("input[type=text]").focus();
						break;
					case 39: // right arrow
						col.next().children("input[type=text]").focus();
						break;
					case 40: // down arrow
						if (string_fill==false){
							tr.next().find('td:eq('+col.index()+') input[type=text]').focus();
						}
						break;
					case 38: // up arrow
						if (string_fill==false){
							tr.prev().find('td:eq('+col.index()+') input[type=text]').focus();
						}
						break;
				}
			}
			if (event.ctrlKey === true){
				switch(event.keyCode) {
					case 37: // left arrow
						tr.find('td:eq(1)').find("input[type=text]").focus();
						break;
					case 39: // right arrow
						tr.find('td:last-child').find("input[type=text]").focus();
						break;
				case 40: // down arrow
					if (string_fill==false){
						table.find('tr:last-child td:eq('+col.index()+') input[type=text]').focus();
					}
					break;
				case 38: // up arrow
					if (string_fill==false){
						table.find('tr:eq(1) td:eq('+col.index()+') input[type=text]').focus();
					}
						break;
				}
			}
			if (event.keyCode == 13 || event.keyCode == 9 ) {
				event.preventDefault();
				col.next().find("input[type=text]").focus();
			}
			if (string_fill==false){
				if (event.keyCode == 34) {
					event.preventDefault();
					table.find('tr:last-child td:last-child').find("input[type=text]").focus();}
				if (event.keyCode == 33) {
					event.preventDefault();
					table.find('tr:eq(1) td:eq(1)').find("input[type=text]").focus();}
			}
		}
		});
		table.find("input[type=text]").each(function(){
			$(this).on('blur', function(event){
			var target = event.target;
			var col = $(target).parents("td");
			if(table.find("input[name=string-fill]").prop("checked")==true) {
				col.nextAll().find("input[type=text]").each(function() {
					$(this).val($(target).val());
				});
			}
		});
	})
};
})( jQuery );
//
// Beauty Hover Plugin (backlight row and col when cell in mouseover)
//
//
(function( $ ){
	$.fn.beautyHover = function() {
		var table = this;
		table.on('mouseover','td', function() {
			var idx = $(this).index();
			var rows = $(this).closest('table').find('tr');
			rows.each(function(){
				$(this).find('td:eq('+idx+')').addClass('beauty-hover');
			});
		})
		.on('mouseleave','td', function(e) {
			var idx = $(this).index();
			var rows = $(this).closest('table').find('tr');
			rows.each(function(){
				$(this).find('td:eq('+idx+')').removeClass('beauty-hover');
			});
		});
	};
})( jQuery );
//
//  Function convert values of inputs in table to JSON data
//
//
function Table2Json(table) {
	var result = {};
	table.find("tr").each(function () {
		var oneRow = [];
		var varname = $(this).index();
		$("td", this).each(function (index) { if (index != 0) {oneRow.push($("input", this).val());}});
		result[varname] = oneRow;
	});
	var result_json = JSON.stringify(result);
	OpenModalBox('Table to JSON values', result_json);
}


/*-------------------------------------------
	Function for File upload page (form_file_uploader.html)
---------------------------------------------*/
function FileUpload(){
	$('#bootstrapped-fine-uploader').fineUploader({
		template: 'qq-template-bootstrap',
		classes: {
			success: 'alert alert-success',
			fail: 'alert alert-error'
		},
		thumbnails: {
			placeholders: {
				waitingPath: "assets/waiting-generic.png",
				notAvailablePath: "assets/not_available-generic.png"
			}
		},
		request: {
			endpoint: 'server/handleUploads'
		},
		validation: {
			allowedExtensions: ['jpeg', 'jpg', 'gif', 'png']
		}
	});
}

/*-------------------------------------------
	Function for OpenStreetMap page (maps.html)
---------------------------------------------*/
//
// Load GeoIP JSON data and draw 3 maps
//
function LoadTestMap(){
	$.getJSON("http://www.telize.com/geoip?callback=?",
		function(json) {
			var osmap = new OpenLayers.Layer.OSM("OpenStreetMap");//создание слоя карты
			var googlestreets = new OpenLayers.Layer.Google("Google Streets", {numZoomLevels: 22,visibility: false});
			var googlesattelite = new OpenLayers.Layer.Google( "Google Sattelite", {type: google.maps.MapTypeId.SATELLITE, numZoomLevels: 22});
			var map1_layers = [googlestreets,osmap, googlesattelite];
			// Create map in element with ID - map-1
			var map1 = drawMap(json.longitude, json.latitude, "map-1", map1_layers);
			$("#map-1").resize(function(){ setTimeout(map1.updateSize(), 500); });
			// Create map in element with ID - map-2
			var osmap1 = new OpenLayers.Layer.OSM("OpenStreetMap");//создание слоя карты
			var map2_layers = [osmap1];
			var map2 = drawMap(json.longitude, json.latitude, "map-2", map2_layers);
			$("#map-2").resize(function(){ setTimeout(map2.updateSize(), 500); });
			// Create map in element with ID - map-3
			var sattelite = new OpenLayers.Layer.Google( "Google Sattelite", {type: google.maps.MapTypeId.SATELLITE, numZoomLevels: 22});
			var map3_layers = [sattelite];
			var map3 = drawMap(json.longitude, json.latitude, "map-3", map3_layers);
			$("#map-3").resize(function(){ setTimeout(map3.updateSize(), 500); });
		}
	);
}
/*-------------------------------------------
	Function for Fullscreen Map page (map_fullscreen.html)
---------------------------------------------*/
//
// Create Fullscreen Map
//
function FullScreenMap(){
	$.getJSON("http://www.telize.com/geoip?callback=?",
		function(json) {
			var osmap = new OpenLayers.Layer.OSM("OpenStreetMap");//создание слоя карты
			var googlestreets = new OpenLayers.Layer.Google("Google Streets", {numZoomLevels: 22,visibility: false});
			var googlesattelite = new OpenLayers.Layer.Google( "Google Sattelite", {type: google.maps.MapTypeId.SATELLITE, numZoomLevels: 22});
			var map1_layers = [googlestreets,osmap, googlesattelite];
			var map_fs = drawMap(json.longitude, json.latitude, "full-map", map1_layers);
		}
	);
}


/*-------------------------------------------
	Function for jQuery-UI page (ui_jquery-ui.html)
---------------------------------------------*/
//
// Function for make all Date-Time pickers on page
//
function AllTimePickers(){
	$('#datetime_example').datetimepicker({});
	$('#time_example').timepicker({
		hourGrid: 4,
		minuteGrid: 10,
		timeFormat: 'hh:mm tt'
	});
	$('#date3_example').datepicker({ numberOfMonths: 3, showButtonPanel: true});
	$('#date3-1_example').datepicker({ numberOfMonths: 3, showButtonPanel: true});
	$('#date_example').datepicker({});
}